import {request} from "../../request/index.js"
Page({

  /**
   * 页面的初始数据
   */
  data: {
    //左侧菜单数据
    leftMenuList:[],
    //右侧商品数据
    rightContent:[],
    //左侧被点击的菜单
    currentIndex:0,
    //右侧内容距离顶部的距离
    scrollTop:0
  },
  //接口的返回数据
  Cates:[],

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    /**
     * 1 判断本地是否有旧数据
     * 2 没有旧数据 直接发送新请求
     * 3 如果有旧数据 且 没有过期 就是用本地存储中的数据
     * 
     */
    //1获取本地存储中的数据 
    const Cates = wx.getStorageSync('cates');
    //2判断
    if(!Cates){
      this.getCates()
    }else{
      if(Date.now-Cates.time>1000*300){ //5m
        this.getCates()
          
        }else{
          this.Cates = Cates.data    
      //构造左侧的大菜单数据
      let leftMenuList = this.Cates.map(v=>v.cat_name)
      //构造右侧的商品数据
      let rightContent = this.Cates[0].children
      this.setData({
        leftMenuList,
        rightContent
      })
          
        }
      }
  },
  //获取分类数据
 async getCates(){
  const res = await request({url:"/categories"})
  
    this.Cates = res
    //把接口数据存入本地
    wx.setStorageSync("cates", {time:Date.now(),data:this.Cates});
    
    //构造左侧的大菜单数据
    let leftMenuList = this.Cates.map(v=>v.cat_name)
    //构造右侧的商品数据
    let rightContent = this.Cates[0].children
    this.setData({
      leftMenuList,
      rightContent
    })
      
      
    }
  ,
  //左侧菜单的点击事件
  handleItemTap(e){
    /**
     * 1. 获取被点击的标题的 索引
     * 2. 给data中的currentIndex 赋值
     * 3. 根据不同的索引来渲染右侧的商品内容
     */
    const {index} = e.currentTarget.dataset
    let rightContent = this.Cates[index].children
    this.setData({
      currentIndex:index,
      rightContent,
      //重新设置 右侧内容的scrollTop值
      scrollTop:0
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})